// 设置默认信息
$.validator.setDefaults({
    submitHandler: function (val) {
        oktipsoption = {
            type: parseInt($('.formsub').attr('jumptype')),
            msg: '注册成功',
            url: $('.formsub').attr('url')
        };
        ajaxform.init(oktipsoption, '.formsub');
        ajaxform.submit();
    },
    errorPlacement: function (error, element) {
        element.parents('.l_b').append(error);
        element.parents('.l_b').find('.prompt').hide();
        element.parents('.l_b').find('.file_name').addClass('error');
    }
});
// 去所有空格
// function del(str) {
//     return str.split(" ").join("")
// }

$(document).ready(function () {

    var regfrom = $("#regfrom");
    // 密码，昵称去空格
    // regfrom.on('keyup', '#repassword,#username', function (event) {
    //     var myThis = $(this);
    //     myThis.val(del(myThis.val()));
    // });

    function getarea(objselect)
    {
        thisselect = objselect;
        thisselect.nextAll().remove();
        if ($(".distpicker select").length >= 3)
        {
            return;
        }
        $.ajax({
            url: $('#getarea').val(), //后台webservice里的方法名称  
            data: {pid: thisselect.find("option:selected").attr("areaid")},
            type: "post",
            dataType: "json",
            success: function (data) {
                if (data.length > 0)
                {
                    str = '<select name="area[]">';
                    $.each(data, function (index, value) {
                        str += '<option areaid="' + value.id + '" value="' + value.areaname + '">' + value.areaname + '</option>'
                    });
                    str += '</select>';

                    thisselect.after(str);
                    getarea($(".distpicker select:last"));
                }
            },
            error: function (msg) {

            }
        });
    }
    getarea($(".distpicker select:first"));

    $(".distpicker").on('change', 'select', function (event) {
        getarea($(this));
    });
    $(".l_b input").focus(function () {
        $(this).addClass('u-ipt-active');
        $(this).removeClass('error');
        $(this).next('.error').hide();
    });
    $(".l_b input").blur(function () {
        $(this).removeClass('u-ipt-active');
        if ($(this).parents('.l_b').find('label.error').is(":visible")) {
            $(this).addClass('error');
            $(this).parents('.l_b').find('.prompt').hide();
        } else {
            $(this).removeClass('error');
            $(this).removeClass('u-ipt-active');
            $(this).parent('.file_name').removeClass('error');
            $(this).parents('.l_b').find('.prompt').show();
        }
    });
    $("#license").change(function () {
        var filepath = $(this).val();
        var fileArr = filepath.split("\\");
        var fileTArr = fileArr[fileArr.length - 1].toLowerCase().split(".");
        $(".file_name").text(fileTArr);
        $(".file_name").addClass("c_active");
        var objUrl = getObjectURL(this.files[0]); //获取图片的路径，该路径不是图片在本地的路径
        if (objUrl) {
            $(".example img").attr("src", objUrl);
            $(".big_ex img").attr("src", objUrl) //将图片路径存入src中，显示出图片
            $(".example").show();
        }
    })

    $(".example").click(function () {
        layer.open({
            type: 1,
            title: false,
            closeBtn: 1,
            area: '520px',
            skin: 'layui-layer-nobg', //没有背景色
            shadeClose: true,
            content: $('.big_ex')
        });
    })

    $("#license").blur(function () {
        if ($(this).parents('.l_b').find('label.error').is(":visible")) {
            $(this).parents('.file_box').find('.file_name').addClass('error');
            $(this).parents('.l_b').find('.prompt').hide();
        } else {
            $(this).parents('.file_box').find('.file_name').removeClass('error');
            $(this).parents('.file_box').find('.file_name').removeClass('u-ipt-active');
            $(this).parents('.l_b').find('.prompt').show();
        }
    });
    // 验证手机号码
    $.validator.addMethod("chkphone", function (value) {
        var phoneReg = /^1\d{10}$/;
        return phoneReg.test(value);
    });
    // 验证短信验证码
    $.validator.addMethod("chkyzcode", function (value) {
        var yzcodeReg = /^\d{6}$/;
        return yzcodeReg.test(value);
    });
    // $.validator.addMethod("yzcodeck", function(value) {
    // 	var ck = $.cookie('phoneverify'); 
    // 	if($("#yzcode").val()==ck){
    // 		return true;
    // 	}
    // });

    // 验证邮箱验证码
    $.validator.addMethod("chkemailcode", function (value) {
        var emailcodeReg = /^\d{6}$/;
        return emailcodeReg.test(value);
    });
    // $.validator.addMethod("emailcodeck", function(value) {
    // 	var ck = $.cookie('emailverify'); 
    // 	if($("#emailcode").val()==ck){
    // 		return true;
    // 	}
    // });

    // 验证密码
    $.validator.addMethod("chkpassword", function (value) {
        var pwdReg = /[^\u4e00-\u9fa5]+/;
        return pwdReg.test(value);
    });
    regfrom.on('keyup', '#pwd', function (event) {
        // 密码，昵称去空格
        var myThis = $(this);
        // myThis.val(del(myThis.val()));

        // 密码强度验证
        var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
        var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
        var enoughRegex = new RegExp("(?=.{6,}).*", "g");
        if (false == enoughRegex.test($(this).val())) {
            $('#level').removeClass('pw-weak');
            $('#level').removeClass('pw-medium');
            $('#level').removeClass('pw-strong');
            $('#level').addClass(' pw-defule');
            //密码小于六位的时候，密码强度图片都为灰色 
        } else if (strongRegex.test($(this).val())) {
            $('#level').removeClass('pw-weak');
            $('#level').removeClass('pw-medium');
            $('#level').removeClass('pw-strong');
            $('#level').addClass(' pw-strong');
            //密码为八位及以上并且大小写字母数字特殊字符4项都包括,强度最强 
        } else if (mediumRegex.test($(this).val())) {
            $('#level').removeClass('pw-weak');
            $('#level').removeClass('pw-medium');
            $('#level').removeClass('pw-strong');
            $('#level').addClass(' pw-medium');
            //密码为七位及以上并且字母、数字、特殊字符三项中有两项，强度是中等 
        } else {
            $('#level').removeClass('pw-weak');
            $('#level').removeClass('pw-medium');
            $('#level').removeClass('pw-strong');
            $('#level').addClass('pw-weak');
            //如果密码为6为及以下，就算字母、数字、特殊字符三项都包括，强度也是弱的 
        }
        return true;
    });
    // 验证营业执照
    $.validator.addMethod("chklicense", function (value) {
        var filepath = $("#license").val();
        //获得上传文件名
        var fileArr = filepath.split("\\");
        var fileTArr = fileArr[fileArr.length - 1].toLowerCase().split(".");
        var filetype = fileTArr[fileTArr.length - 1];
        //切割出后缀文件名
        if (filetype != "jpg" && filetype != "png" && filetype != "jpeg" && filetype != "bmp" && filetype != "gif") {
            return false;
        } else {
            return true;
        }
    });
    // 验证营业执照文件大小
    $.validator.addMethod("chkpicsize", function (value, element) {
        if (window.ActiveXObject || "ActiveXObject" in window) {
            var filesize = $("#license").fileSize; //文件大小
            var maxSize = 2 * 1024 * 1024;
            if (filesize > maxSize) {
                return false;
            } else {
                return true;
            }
        } else {
            var fileSize = element.files[0].size;
            var maxSize = 2 * 1024 * 1024;
            if (fileSize > maxSize) {
                return false;
            } else {
                return true;
            }
        }
    });
    //验证统一社会信用代码
    $.validator.addMethod("chkcrecode", function (value) {
        var crecodeReg = /^[0-9A-Z]{18}$/;
        return crecodeReg.test(value);
    });
    //验证固定电话
    $.validator.addMethod("chktel", function (value) {
        if ($("#tel").val() == '') {
            return true
        } else {
            var telReg = /^((0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
            return telReg.test(value);
        }
    });
    $("#regfrom").validate({
        rules: {
            captcha: {
                required: true,
                remote: {
                    url: $("#checkcode").val(),
                    type: "Post",
                    async: false,
                    data: {
                        captcha: function () {
                            return $("#captcha").val();
                        }
                    },
                    dataType: "json"
                }
            },
            phone: {
                required: true,
                chkphone: true,
                remote: {
                    url: $("#checkphoneurl").val(),
                    type: "Post",
                    async: false,
                    data: {
                        phone: function () {
                            return $("#phone").val();
                        }
                    },
                    dataType: "json"
                }
            },
            phonecode: {
                required: true,
                chkyzcode: true,
                remote: {
                    url: $("#checkphonecode").val(),
                    type: "Post",
                    async: false,
                    data: {
                        yzcode: function () {
                            return $("#phonecode").val();
                        }
                        ,
                        phone: function () {
                            return $("#phone").val();
                        }
                    },
                    dataType: "json"
                }
                // yzcodeck: true
            },
            pwd: {
                required: true,
                minlength: 6,
                maxlength: 12,
                chkpassword: true
            },
            repassword: {
                required: true,
                equalTo: "#pwd"
            },
            companyname: {

                required: true,
                maxlength: 50,
                remote: {
                    url: $("#checkcompanyurl").val(),
                    type: "Post",
                    async: false,
                    data: {
                        company: function () {
                            return $("#companyname").val();
                        }
                    },
                    dataType: "json"
                }
            },
            license: {
                required: true,
                chklicense: true,
                chkpicsize: true
            },
            creditcode: {
                required: true,
                chkcrecode: true
            },
            email: {
                required: true,
                email: true,
                async: false,
                remote: {
                    url: $("#checkemailurl").val(),
                    type: "Post",
                    data: {
                        email: function () {
                            return $("#email").val();
                        }
                    },
                    dataType: "json"
                }
            },
            emailcode: {
                required: true,
                chkemailcode: true,
                remote: {
                    url: $("#checkemailcode").val(),
                    type: "Post",
                    data: {
                        emailcode: function () {
                            return $("#emailcode").val();
                        },
                        email: function () {
                            return $("#email").val();
                        }
                    },
                    dataType: "json"
                }
                // emailcodeck: true
            },
            tel: {
                required: true,
                chktel: true
            },
            address: {
                required: true,
                maxlength: 100
            },
            agree_tk: {
                required: true
            }
        },
        messages: {
            nickname: {
                required: '请输入昵称',
                minlength: '至少输入1位字符',
                maxlength: '最多12位字符',
                chkusername: '请输入1-12位字符'
            },
            captcha: {
                required: '请输入验证码',
                remote: '请输入正确的验证码'
            },
            phone: {
                required: '请输入11位手机号码',
                chkphone: '手机号码不正确',
                remote: '手机号码已存在'
            },
            phonecode: {
                required: '请输入短信验证码',
                chkyzcode: '验证码为6位数字',
                remote: '请输入正确的短信验证码'
                        // yzcodeck:'请输入正确的短信验证码'
            },
            pwd: {
                required: '请输入密码',
                minlength: '至少输入6位非中文密码',
                maxlength: '最多12位非中文密码',
                chkpassword: '请输入6-12位非中文密码'
            },
            repassword: {
                required: '请再次输入密码',
                equalTo: "两次密码输入不一致"
            },
            companyname: {
                required: '请输入企业或公司名称',
                maxlength: '最多输入50字符',
                remote: '公司已存在'
            },
            license: {
                required: '请上传营业执照',
                chklicense: '请上传格式为jpg、jpeg、png、bmp、gif的图片',
                chkpicsize: '请上传大小在2M一下的图片'
            },
            creditcode: {
                required: '请输入营业执照上统一社会信用代码',
                chkcrecode: '请输入18位数字或大写字母组成的统一社会信用代码'
            },
            email: {
                required: '请输入邮箱',
                email: '邮箱地址不正确',
                remote: '邮箱已存在'
            },
            emailcode: {
                required: '请输入邮箱验证码',
                chkemailcode: '验证码为6位数字',
                remote: '请输入正确的邮箱验证码'
                        // emailcodeck:'请输入正确的邮箱验证码'
            },
            tel: {
                required: '请输入固定电话',
                chktel: '请输入正确的固定电话'
            },
            address: {
                required: '请输入具体地址',
                maxlength: '最多输入100位字符'
            },
            agree_tk: {
                required: '您还未接受《服务条款》'
            }
        },
        focusInvalid: false,
        onkeyup: false
    });
    $(".agree").click(function (event) {
        if ($(this).is(':checked')) {
            $(this).parent('.u-checkbox').addClass('u-checkbox-selected');
        } else {
            $(this).parent('.u-checkbox').removeClass('u-checkbox-selected');
        }
    })

    $(".zzw_tk").click(function (event) {
        layer.open({
            title: '中国飞龙网服务条款',
            type: 2,
            skin: 'layui-layer-rim', //加上边框
            area: ['800px', '600px'], //宽高
            content: $("#clause").val()
        });
        return false
    });
})


// 短信验证计时
var InterValObj1; //timer变量，控制时间
var curCount1; //当前剩余秒数
function sendMessage() {
    var count = 60; //间隔函数，1秒执行
    if ($("#regfrom").validate().element($("#phone")) && $("#regfrom").validate().element($("#captcha"))) {
        curCount1 = count;
        //设置button效果，开始计时
        $(".js_yzcode").attr("disabled", "true");
        $(".js_yzcode").text(curCount1 + "S");
        $(".js_yzcode").css("background", "#ccc");
        $(".js_yzcode").removeAttr("onclick", '');
        InterValObj1 = setInterval(SetRemainTime, 1000); //启动计时器，1秒执行一次
        //向后台发送处理数据
        $.ajax({
            type: "POST", //用POST方式传输
            dataType: "json", //数据格式:JSON
            url: $('#sendphoneurl').val(), //目标地址
            data: {phone: $("#phone").val()},
        });
    }
}

//timer处理函数
function SetRemainTime() {
    if (curCount1 == 0) {
        clearInterval(InterValObj1); //停止计时器
        $(".js_yzcode").removeAttr("disabled"); //启用按钮
        $(".js_yzcode").attr("onclick", 'sendMessage()');
        $(".js_yzcode").text("重新发送");
        $(".js_yzcode").css("background", "#f60");
    } else {
        curCount1--;
        $(".js_yzcode").text(curCount1 + "S");
    }
}


var curCount2; //当前剩余秒数
var InterValObj2; //timer变量，控制时间
function sendMessage2() {
    var count = 60;
    //间隔函数，1秒执行
    if ($("#regfrom").validate().element($("#email"))) {
        curCount2 = count;
//设置button效果，开始计时
        $(".js_mailcode").attr("disabled", "true");
        $(".js_mailcode").text(curCount2 + "S");
        $(".js_mailcode").css("background", "#ccc");
        $(".js_mailcode").removeAttr("onclick", '');
        InterValObj2 = setInterval(SetRemainTime2, 1000); //启动计时器，1秒执行一次
        //向后台发送处理数据
        $.ajax({
            type: "POST", //用POST方式传输
            dataType: "json", //数据格式:JSON
            url: $('#sendemailurl').val(), //目标地址
            data: {email: $("#email").val()}
        });
    }
}

//timer处理函数
function SetRemainTime2(obj) {
    if (curCount2 == 0) {
        clearInterval(InterValObj2); //停止计时器
        $(".js_mailcode").removeAttr("disabled"); //启用按钮
        $(".js_mailcode").attr("onclick", 'sendMessage2()');
        $(".js_mailcode").text("重新发送");
        $(".js_mailcode").css("background", "#f60");
    } else {
        curCount2--;
        $(".js_mailcode").text(curCount2 + "S");
    }
}

//建立一個可存取到該file的url
function getObjectURL(file) {
    var url = null;
    if (window.createObjectURL != undefined) { // basic
        url = window.createObjectURL(file);
    } else if (window.URL != undefined) { // mozilla(firefox)
        url = window.URL.createObjectURL(file);
    } else if (window.webkitURL != undefined) { // webkit or chrome
        url = window.webkitURL.createObjectURL(file);
    }
    return url;
}